#include <sstream>
#include <fstream>
#include <iostream>
#include <stdexcept>
using namespace std;

//#include "noria/util/ResourceManager.h"

namespace fireemblem { namespace engine {

    class GameTP;
    class Game final
    {
    public:
        Game(GameTP &tp)
            : m_tp(tp)
        {
            //m_lm = AcCreateResourceManagerRaw();
            //m_rm = AcCreateResourceManagerRaw();
        }
        ~Game()
        {

        }
    public:
        void Run()
        {
            cout << "Game is running" << endl;
            /*
            Init()
            {
                lightLoader = new LightLoader();
                splash = m_lightLoader.GetSplashScreen();
                music = m_lightLoader.GetSplashMusic();
                window = new MainWindow();
                window.Show(m_splash);
                SoundManager.GetInstance().Play(music);

                Thread loader = new Thread(new FullLoader());
                loader.OnProgressChanged -> window.UpdateProgress();
                loader.OnCompleted -> window.ShowNextScene();
                loader.Start();
            }

            Loop()
            {
                while(running)
                {
                    if(timer_tick)
                    {
                        window.DrawFrame();
                    }
                    else
                    {
                        window.DispatchMessage();
                    }
                }
            }

            Cleanup()
            {
            
            }

             */
        }
    private:
        GameTP &m_tp;
    private:
        //IResourceManager* m_lm; // lightweight resource manager (for splashscreen and music)
        //IResourceManager* m_rm; // real resource manager
    };
}}